Interview Practice (Front-End)

Go through a practice interview, time yourself, review your results and figure out how you can improve.


Employers use interviews to judge your readiness and fit for the job, which includes hearing about your skills and interest in the role. The interview is not a test or exam, but a conversation between you and the employer. Build your own strategies to be prepared come interview day. This project is one of many ways for you to practice!

Submission Instructions

  1. Find a job posting that you would apply to now or after your Nanodegree graduation. Judge if you would be a good fit for the role. (Note: If you're more than 75% qualified for the job on paper, you're probably a good candidate and should give applying a shot!)
  2. Answer the interview questions below as if you were answering them in an interview for that job.
  3. Copy and paste the text of the job posting in "Notes to reviewer" during submission. Do not copy the job posting link, which can expire at any time.
  4. Submit your interview questions as .pdf, text editor file, etc.

Project: Answer the Following Interview Questions (6 total)

For each of the questions below, answer as if you were in an interview, explaining and justifying your answer with two to three paragraphs as you see fit. For coding answers, explain the relevant choices you made writing the code.

  1. What is the most influential book or blog post you’ve read regarding front-end development?

  2. If you could master one technology this year, what would it be and why?

  3. Describe any front-end web application framework (preferably one that you use). How does it work? What are the upsides and downsides?

  4. Write a JavaScript function that takes only one argument——another function——and returns a "memoized" version of that function. A "memoized" version of a function caches and returns the results of its call so that when it is called again with the same input, it doesn’t run its computation but instead returns the results from cache. Note that previous results should be retrievable in any order without re-computation.

    Feel free to include your own example use, input, and output (like what is seen below).

foo = function (x) {
   console.log("calculating!");
   return x + 5;
 }

 var memoizedFoo = memoize(foo);

 memoizedFoo(5);
// calculating!
// 10

 memoizedFoo(5);
// 10 (notice how 'calculating!' is not printed this time)

 memoizedFoo(10);
// calculating!
// 15
  1. Create a simple webpage that has a cow image in the middle (centered horizontally on the page) and a counter label below it. Add the necessary code so that every time you click the cow image, the counter is incremented by 1. The counter should start with a value of 0. You should include a brief explanation of your code. Also, here is a URL for a cow image, https://upload.wikimedia.org/wikipedia/commons/2/21/Cow_cartoon_04.svg, if you would like to include it in your answer.
  2. If you were to start your front-end position today, what would be your goals a year from now?

Project Resources

  1. Project Rubric. Your project will be reviewed by a Udacity Career Reviewer against this rubric.
  2. Project Checklist. Based on the project rubric, this is a handy checklist to use during your interview preparations.
  3. Career Resource Center. Find additional tips and guides on interview practice.

Up Next

Interview practice happens over time - you'll continue building on your interview skills during your job search and throughout your career. Take every opportunity to talk about your career goals. Before applying to a job, be sure why you want to apply - this will help you a lot in prepping for the interview.